读取锻炼数据(HealthWorkout) PRO
Scripting 应用支持通过全局函数 Health.queryWorkouts() 从 HealthKit 查询锻炼记录。Workout 表示一次完整的身体活动,如跑步、步行、游泳、骑行、力量训练等。
每条锻炼记录包含活动类型、起止时间、持续时间、相关事件以及详细的统计信息(如心率、步数、距离、能量消耗等)。
什么是 Workout?
每条 HealthWorkout 锻炼记录包含以下内容:
startDate/endDate:锻炼的起止时间duration:持续时间(单位:秒)workoutActivityType:锻炼类型(枚举值,如跑步、步行、瑜伽等)metadata:可选的附加信息workoutEvents:可选的事件数组(如暂停、继续、圈数等)allStatistics:一个包含所有健康指标统计的字典,例如心率、距离、卡路里等
API 用法
参数说明
示例:读取最近的锻炼记录
如何读取统计指标
每条锻炼记录的 allStatistics 字典包含该锻炼过程中的各种指标统计,例如:
常见可用指标包括:
"heartRate":心率"activeEnergyBurned":活跃能量消耗"distanceWalkingRunning":步行/跑步距离"stepCount":步数
Workout Events(可选事件)
如果记录了事件(如暂停、继续、圈数等),可通过 workout.workoutEvents 获取:
事件类型包括:暂停(pause)、继续(resume)、圈数(lap)、分段(segment)等。
注意事项
- 每条记录都是
HealthWorkout实例 workoutActivityType是一个枚举,可转换为文本或图标- 如果
allStatistics中缺少某些指标,说明设备或应用在当时未记录该数据 - 可结合分类数据(如睡眠)或数量数据(如心率)进行完整的活动分析
小结
读取 Workout 数据的步骤如下:
- 调用
Health.queryWorkouts(options)获取锻炼记录数组; - 可通过时间范围、数量限制、排序方式进行筛选;
- 通过属性获取锻炼类型、时长等基本信息;
- 使用
allStatistics获取详细的健康指标; - 可选读取
workoutEvents获取锻炼过程中的事件记录。
该 API 非常适用于展示锻炼历史、生成健身日报或绘制活动趋势图等场景。
